<?php

// 验证码函数
/**
 * [yzm 验证码]
 * @param  integer $width [验证码宽度]
 * @param  integer $height [验证码高度]
 * @param  integer $num [验证码个数]
 * @param  integer $type [验证码类型  1: 纯数字 2: 字母 3: 数字+字母 4: 汉字]
 * @return [type]          [description]
 */

function yzm($width = 160, $height = 50, $num = 4, $type = 1)
{
    header('content-type:image/jpeg');
    
    session_start();
    // 1. 创建图片
    $img = imagecreatetruecolor($width, $height);
    
    // 2. 分配颜色
    $back = imagecolorallocate($img, 244, 244, 211);
    
    // $font = imagecolorallocate($img, 0,0,0);
    $font = imagecolorallocate($img, mt_rand(100, 250), mt_rand(100, 250), mt_rand(100, 250));
    
    // 3. 打底色
    imagefill($img, 0, 0, $back);
    
    // 4. 画图
    switch ($type) {
        case '2':
            // 随机获取4个小写字母
            $a = range('a', 'z');
            $a = array_flip($a);
            $b = array_rand($a, $num);
            $c = implode($b, '');
            break;
    }
    $_SESSION['validate']= $c;
    
    
    $w = $width;
    // 画每个字母
    for ($i = 0; $i < $num; $i++) {
        $x = ($w / $num) * $i + 20;
        imagettftext($img, mt_rand(18, 35), mt_rand(0, 90), $x, mt_rand(30, 40), imagecolorallocate($img, mt_rand(100, 250), mt_rand(100, 250), mt_rand(100, 250)), 'simhei.ttf', $c[$i]);
    }
    
    // 5. 保存
    imagejpeg($img);
    // 6. 销毁
    imagedestroy($img);
}

yzm(200, 50, 4, 2);

?>